<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
    </style>
    <script src="../lib//three/three.js"></script>
    <script src="../lib//three/dat.gui.js"></script>
    <script src="../controls/index.js"></script>
</head>
<body>

</body>
</html>
<script>
    // 创建一个场景
    const scene = new THREE.Scene()
    // 创建一个相机 视点
    const camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
    // 设置相机的位置
    camera.position.set(0, 0, 20)
    // 创建一个渲染器
    const renderer = new THREE.WebGLRenderer()
    // 设置渲染器尺寸
    renderer.setSize(window.innerWidth, window.innerHeight)
    document.body.appendChild(renderer.domElement)
    // 添加直线和虚线
    const lines = new THREE.Geometry();
    lines.vertices = [
        new THREE.Vector3(0,2,5),
        new THREE.Vector3(0,-2,5),
    ]
    // const material = new THREE.LineBasicMaterial({
    //     color:0xff0000,
    //     linewidth:10,
    // })

    const material = new THREE.LineDashedMaterial({
        color:0xff0000,
        dashSize:1, // 短划线的长度
        gapSize:1, // 间隔的长度
    })
    const line = new THREE.Line(lines,material)
    // 计算点到线的累积长度
    lines.computeLineDistances()
    scene.add(line)

    // 让两个三维物体产生阴影，使用平面接收

    // 添加灯光
    const spotLight = new THREE.SpotLight(0xffffff)
    spotLight.position.set(-10, 10, 90)
    // 灯光开启阴影效果
    spotLight.castShadow = true
    // 渲染器支持阴影
    renderer.shadowMapEnabled = true
    scene.add(spotLight)
    initControls(material,camera)
    const animation = () => {
        // cube.rotation.x += 0.01
        // cube.rotation.y += 0.01
        // 渲染
        renderer.render(scene, camera)
        requestAnimationFrame(animation)
    }
    animation()
</script>